from flask import render_template, g

from apps.errors import error_bp
from models.users import User, Role



@error_bp.route('/permission_error/<missing_permission>')
def permission_error(missing_permission):
    """权限不足错误界面"""

    user = User.query.filter_by(username=g.username).first()
    role_list, count = Role.all_roles_with_permission(missing_permission)
    # 组织响应给前端的上下文
    context = {
        'role_name': user.role.name,  # 当前用户的用户组名称
        'missing_permission': missing_permission,  # 本次操作缺少的权限名称
        'role_list': role_list  # 拥有该缺少权限的所有用户组
    }
    return render_template('errors/permission_error.html', context=context)
